import request from "@/utils/request";
const RESUME_BASE_URL = "/api/v1/resume";

const ResumeApi = {
  /** 分页数据 */
  getPage(queryParams?: ResumePageQuery) {
    return request<any, PageResult<ResumeVo[]>>({
      url: `${RESUME_BASE_URL}/pages`,
      method: "post",
      data: queryParams,
    });
  },

  /**
   * 获取表单数据
   *
   * @param id 岗位ID
   * @returns 岗位表单数据
   */
  getFormData(id: string) {
    return request<any, Resume>({
      url: `${RESUME_BASE_URL}/${id}`,
      method: "get",
    });
  },

  /** 添加 */
  create(data: Resume) {
    return request({
      url: `${RESUME_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新
   *
   * @param id ID
   * @param data 表单数据
   */
  update(id: string, data: Resume) {
    return request({
      url: `${RESUME_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 删除岗位数据
   *
   * @param id 岗位ID
   */
  deleteById(id: string) {
    return request({
      url: `${RESUME_BASE_URL}/${id}`,
      method: "delete",
    });
  },
};

export default ResumeApi;

/** 兼职分页查询参数 */
export interface ResumePageQuery extends PageQuery {
  /**
   * 关键字
   */
  keywords?: string;

  /**
   * 简历名称
   */
  resumeName?: string;

  /**
   * 教育背景 (HTML格式)
   */
  eduBackground?: string;

  /**
   * 技能 (HTML格式)
   */
  skill?: string;

  /**
   * 实践经历 (HTML格式)
   */
  practicalExperience?: string;

  /**
   * 自我评价 (HTML格式)
   */
  selfEvaluation?: string;
  /**
   * 创建时间
   */
  createTimes?: Array<string>;
  /**
   * 发布时间-起
   */
  createTimeStart?: string;
  /**
   * 发布时间-止
   */
  createTimeEnd?: string;
}

export interface Resume {
  /**
   * 主键 (UUID)
   */
  id?: string;

  /**
   * 简历名称
   */
  resumeName?: string;

  /**
   * 教育背景 (HTML格式)
   */
  eduBackground?: string;

  /**
   * 技能 (HTML格式)
   */
  skill?: string;

  /**
   * 实践经历 (HTML格式)
   */
  practicalExperience?: string;

  /**
   * 自我评价 (HTML格式)
   */
  selfEvaluation?: string;

  /**
   * 附件ID (关联文件表)
   */
  fileId?: string | null;

  /**
   * 乐观锁
   */
  revision?: string; // ISO 日期字符串

  /**
   * 创建人
   */
  createUserId?: string;

  /**
   * 创建人名称
   */
  createUserName?: string;

  /**
   * 创建时间
   */
  createTime?: string; // ISO 日期字符串

  /**
   * 更新人
   */
  updateUserId?: string;

  /**
   * 更新人名称
   */
  updateUserName?: string;

  /**
   * 更新时间
   */
  updateTime?: string; // ISO 日期字符串
}

export interface ResumeVo extends Resume {}
